home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-08-09 | 65.0 KB | 1,596 lines |
-
-
- Thinosi Working Group P.R.Furniss
- INTERNET DRAFT Consultant
- August 1993
-
-
- Octet sequences for upper-layer OSI
- to support basic communications applications
-
- Status of this Memo
-
- This draft document is part of the work of the IETF Thinosi Working
- Group. It is intended to submit it to the IAB standards track.
- Distribution of this memo is unlimited. Comment on this draft should be
- sent to the thinosi mailing list: thinosi@ulcc.ac.uk. Requests to join
- this list should be sent to thinosi-request@ulcc.ac.uk.
-
- This document is an Internet-Draft. Internet-Drafts are working
- documents of the Internet Engineering Task Force (IETF), its Areas, and
- its Working Groups. Note that other groups may also distribute working
- documents as Internet-Drafts.
-
- Internet-Drafts are draft documents valid for a maximum of six months.
- Internet-Drafts may be updated, replaced, or obsoleted by other
- documents at any time. It is not appropriate to use Internet-Drafts as
- reference material or to cite them other than as a "working draft" or
- "work in progress."
-
- To learn the current status of any Internet-Draft, please check the 1id-
- abstracts.txt listing contained in the Internet-Drafts Shadow
- Directories on ds.internic.net, ic.nordu.net, ftp.nisc.sri.com, or
- munnari.oz.au.
-
- Abstract
-
- This document specifies those elements of the OSI upper-layer protocols
- (Session, Presentation and ACSE) needed to support applications with
- "basic communications requirements". These include OSI application
- protocols such as X.400 P7 and Directory Access Protocol, and "migrant"
- protocols, originally defined for use over other transports.
-
- The upper-layer protocol elements are specified in this document as the
- particular octet sequences that comprise an "envelope" around the
- application protocol's data. It therefore independent, as a document,
- from the OSI base standards, although an implementation based on this
- document will be able to interwork with an implementation based on the
- base standard, when both are being used to support an appropriate
- application protocol.
-
-
-
-
-
- Expires 11 February 1994 [Page 1]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- Table of Contents
-
- 1. Introduction ....................................................3
- 2. General .........................................................3
- 2.1 Subdivisions of "basic communication applications" ............3
- 2.2 Conformance and interworking ..................................5
- 2.3 Relationship to other documents ...............................6
- 2.4 Model of an implementation ....................................6
- 3. Contexts and titles .............................................7
- 3.1 The concepts of abstract and transfer syntax ..................7
- 3.2 Use of presentation context by the cookbook applications ......8
- 3.3. Processing Presentation-context-definition-list ..............8
- 3.4 Application context ...........................................9
- 3.5 APtitles and AEqualifiers .....................................9
- 4. What has to be sent and received ...............................11
- 4.1. Sequence of OSI protocol data units used ....................11
- 4.2. Which OSI fields are used ...................................13
- 4.3. Encoding methods and length fields ..........................14
- 4.3.1 Session items ..............................................14
- 4.3.2 ASN.1/BER items (Presentation and ACSE) ....................15
- 4.4. BER Encoding of values for primitive datatypes ..............15
- 4.5. Unnecessary constructed encodings ...........................16
- 5. Notation .......................................................16
- 6. Octet sequences ................................................17
- 6.1. Connection request message ..................................17
- 6.2. Successful reply to connection setup ........................20
- 6.3. Connection rejection ........................................22
- 6.4. Data-phase TSDU .............................................22
- 6.5. Closedown - release request ................................24
- 6.6. Closedown - release response ................................24
- 6.7. Deliberate abort ............................................25
- 6.8. Provider abort ..............................................26
- 6.9. Abort accept ................................................27
- 7. References .....................................................27
- 8. Other notes ....................................................28
- 9. Author's Address ...............................................28
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Expires 11 February 1994 [Page 2]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- 1. Introduction
-
- The upper-layer protocols of the OSI model are large and complex, mostly
- because the protocols they describe are rich in function and options.
- However, for support of most applications, only a limited portion of the
- function is needed and the protocol elements needed can be expressed
- more simply.
-
- This memo describes the protocol elements required by the OSI upper
- layers when supporting a connection-oriented application with only basic
- communication requirements - that is to create a connection, optionally
- negotiate the data representation, send/receive data, close a connection
- and abort a connection. Optionally, data may be sent on the connection
- establishment, closing and abort messages.
-
- The protocol elements for the OSI upper layer protocols (i.e. Session ,
- Presentation . and Association Control Service Element (ACSE) . needed
- to support such an application are a subset of the full protocols
- defined in the International Standards ([ISO8326, ISO8327, ISO8822,
- ISO8823, ISO8649, ISO8650]). Such a protocol subset can be specified in
- a profile, which references the base standards and states which parts
- are relevant. Such a profile specification cannot be understood without
- reference to the base standards.
-
- In this memo, the protocol elements needed are specified in terms of the
- octet sequences that comprise the 'envelope' around the application
- data. This memo thus provides a re-specification of the relevant parts
- of the upper-layer protocols. An implementation based on this memo will
- be able to interwork with an implementation based directly on the full
- standards when both are supporting a basic communication application.
- (The "full" implementation will exhibit only part of its potential
- behaviour, since the application will only invoke part).The envelope and
- its enclosing data form a Transport Service Data Unit (TSDU) that can be
- passed via the OSI Transport Service [ISO8072] (which in turn may be
- supported as specified in [RFC1006] or any class of the OSI Transport
- Protocol [ISO8073]).
-
-
- 2. General
-
- 2.1 Subdivisions of "basic communication applications"
-
- Distinctions can be made within the "basic communication applications",
- as defined above, based on how much use they make of the OSI upper-layer
- services. In particular:
-
- a) whether application data is sent on the connection
- establishment, close and abort, or only during "date phase" on an
- established connection;
-
-
-
- Expires 11 February 1994 [Page 3]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- b) whether the application data is of only one kind (abstract
- syntax) and one format (transfer syntax) or more than one (i.e.
- how much use is made of the Presentation layer syntax negotiation
- and identification features)
-
- These distinctions potentially allow further subsetting, but a large
- part of the protocol will be the same. In this memo, four groups of
- supported application are considered, based on these distinctions. All
- groups have "basic communications requirements" in requiring only
- connection, data transfer and (perhaps) orderly release of
- connection.The four groups are:
-
- Group I : applications which send data only on an established
- connection, and use a single abstract and transfer syntax.
-
- Group II : applications which send data on connection
- establishment and release and use a single abstract and transfer
- syntax.
-
- Group III : Applications whose data is in more than one format
- (presentation context) and which need the syntax identification
- and negotiation features of Presentation. Further subdivisions of
- this group are possible
-
- Group III applications that send data of only one kind (one
- abstract syntax) on the connection, but which have more than one
- format (transfer syntax) specified (they use the Presentation
- context negotiation facility)
-
- Group IV applications that will send data of several kinds on the
- connection (and which much therefore distinguish on each write
- which kind is being sent)
-
- Group III applications are equivalent to Group I (or possibly Group II)
- after the establishment exchange has negotiated the particular transfer
- syntax that will be used on the connection.
-
- Possible examples of the Groups are:
-
- Group I: application protocols designed for use over transport-
- level protocols. Typically these are non-OSI protocols "migrated"
- to an OSI environment. X Window System protocol is an example.
-
- Group II: Typically OSI-originated protocols with simple
- requirements, including many of the ROSE-based ones, such as
- Directory Access Protocol.
-
- Group III: Protocols that can be treated as Group I, but for
- which more than one encoding of the data is known, such as a
- standardised one and a system-specific one - all implementations
-
-
- Expires 11 February 1994 [Page 4]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- understand the standard encoding, but Presentation layer
- negotiation allows like-implementations to use their internal
- encoding for transfer, without loss of general interworking. The
- same could apply to OSI protocols.
-
- Group IV: OSI protocols with multiple abstract syntaxes but where
- each message is from a single abstract syntax, and that do not
- use any of the special Session functional units - X.400 P7 is an
- example.
-
- Some of the OSI protocols that are not included are those that use more
- than one abstract syntax in a single message (such as FTAM or
- Transaction Processing) or use Session functional units (RTSE-based
- protocols, Virtual Terminal).
-
- 2.2 Conformance and interworking
-
- The protocol elements specified in this memo correspond to the kernel
- functional units of Session, Presentation and ACSE, and the duplex
- functional unit of Session.
-
- The octet sequences given below are derived from the specifications in
- the International Standards for the protocols Session [ISO8327],
- Presentation [ISO8822] and ACSE [ISO8650]. The intention of this memo is
- to summarise those specifications, as applicable to the supported
- application groups, so that an implementation could be developed without
- direct reference to the original standards, but capable of interworking
- with implementations that had made direct reference. The OSI standards
- (especially Presentation) allow considerable flexibility in the encoding
- of the protocol data units. Accordingly, this memo defines particular
- octet sequences to be sent, and describes the variations that can be
- expected in data received from an implementation based directly on the
- OSI standards, rather than on this cookbook. It is intended that an
- implementation that sends these sequences and that is capable of
- interpreting the variations described will be fully able to interwork
- with an implementation based directly on the OSI standards. An
- implementation that is only capable of interpreting the octet sequences
- specified in this memo for transmission may not be able to interwork
- with standards-based implementations.
-
- The intent is to be able to interwork with conformant implementations in
- support of the relevant application (or group of applications). Some of
- the OSI standards have conformance requirements that go beyond that
- necessary for successful interworking, including detection of invalid
- protocol. Tests for conformance sometimes go beyond the strict
- conformance requirements of the standard. Consequently an implementation
- based on this memo may or may not be able to formally claim conformance
- to the International Standard. It may be able to legitimately claim
- conformance, but fail a conformance test, if the test is over-specified.
-
-
-
- Expires 11 February 1994 [Page 5]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- (Efforts are being made to correct this, but in the meantime, the target
- is interworking with conformant implementations)
-
- 2.3 Relationship to other documents
-
- The flexibility allowed in the Session, Presentation and ACSE standards
- is restricted in the Common Upper-Layer Requirements Part 1 [CULR-1] ).
- This is a proposed International Standardised Profile (pdISP 11188-1)
- that can be assumed to be obeyed by most implementations. This memo
- applies the restrictions of CULR-1, especially where these concern
- maximum sizes of fields and the like.Points where advantage is taken of
- a CULR-1 limitation are noted.
-
- Additional parts of CULR are under development. Part 3 [CULR-3] covers
- the protocol elements needed for "basic communications applications",
- and is being developed in (informal) liaison with this memo. CULR-3 is
- presented as a normal profile, largely consisting of prescribed answers
- to the questions in the PICS (Protocol Implementation Conformance
- Statement) of the three protocols.CULR-3 does not make the distinction
- between the four Groups.An implementation of this memo (at least if it
- supported Group IV) would be able to claim conformance to CULR-3, with
- the possible exception of any more-than-interworking conformance
- requirements inherited by CULR-3 from the base standards.
-
- An extension [XTI/mOSI] to the X/Open Transport Interface [XTI] is
- shortly to be published as a preliminary specification. This defines an
- API to the OSI upper-layers, again as appropriate to a basic
- communications application. XTI/mOSI would be usable as an interface to
- support applications in groups I, II and III, and possibly group IV.
-
- 2.4 Model of an implementation
-
- This memo does not require any particular structuring of the
- implementation. An implementation could be developed to support all the
- groups, or only some of the simpler groups, or a specific application.
- Nevertheless, the memo defines the protocol to be created and
- interpreted by a notional component that has
-
- an upper boundary to an application that passes to it and receives
- from it requests for connection, disconnection and sequences of
- application data. Any internal structure in the application data is
- transparent to the component.
-
- a lower boundary to the OSI Transport layer, to and from which the
- component passes requests for transport connection and disconnection,
- and Transport Service Data Units to be sent/received on the T-DATA
- service.
-
- For a general implementation, the upper boundary (interface) will need
- to distinguish whether the application data is a "single-ASN.1-type"
-
-
- Expires 11 February 1994 [Page 6]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- encoded with the Basic Encoding Rules, or a non-ASN.1/BER octet
- string(because it changes one octet in the envelope). For group
- iVapplications it will be necessary to distinguish which syntax the
- particular data item is in.
-
-
- 3. Contexts and titles
-
- 3.1 The concepts of abstract and transfer syntax
-
- OSI includes the concepts of "abstract syntax" and "transfer syntax".
- These are terms for the content (abstract syntax) and format "on-the-
- line" (transfer syntax) of the protocol elements. The combination of an
- abstract syntax and transfer syntax is called a presentation context.
-
- Application protocols devised explictly under OSI auspices have used
- ASN.1 for the definition of the abstract syntax, and nearly all use the
- Basic Encoding Rules applied to the ASN.1 to define the transfer syntax.
- However, there is no such requirement in OSI in general or in OSI
- Presentation, and still less is there any requirement to change the
- representation of existing application protocols to ASN.1 (for their
- definition) or BER (for their transmission). It is not generally
- realised (even in OSI circles) that all communicating applications, in
- all environments, are using some form of these, although under different
- names and without the explicit identification that the OSI Presentation
- provides. OSI thus separates the identification of the content and
- format of the data from the addressing.
-
- Formal specifications of non-OSI application protocols (such as TELNET,
- FTP, X Windows System) generally do not use ASN.1, but will invariably
- be found to define abstract and transfer syntaxes. For a less
- formalised protocol used between similar systems, the abstract syntax
- may be defined simply in programming language structures, and the
- transfer syntax determined by an available compiler represents this in
- memory.
-
- The OSI Presentation protocol requires that "names" be assigned to the
- abstract and transfer syntaxes of the application data that is carried.
- The names are always object identifiers (oids): globally unique names
- assigned hierarchically. Presentation supports the negotiation of a
- transfer syntax for a particular abstract syntax - several can be
- offered and one selected.
-
- This transfer syntax negotiation facility may be especially useful for
- non-ASN.1 syntaxes where there is more than one representation available
- (perhaps differing in byte-ordering or character code). In such a case,
- on the connection establishment, all of the transfer syntaxes supported
- by the initiatior are offered, and any one of these accepted by the
- responder, at its own choice. If the two systems share some "native"
- format they can negotiate that, avoiding transformation into and out of
-
-
- Expires 11 February 1994 [Page 7]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- the more general format. Following the negotiation, the application can
- be regarded as if it were group I. The same applies to an ASN.1-defined
- abstract syntax, but in practice non-BER encodings of ASN.1 are rare.
- (An ASN.1-defined abstract syntax could be treated as a Group III
- application offering the BER transfer syntax and some implementation-
- specific representation as alternatives - if the responder is the same
- implementation, an efficiency gain is possible.)
-
- 3.2 Use of presentation context by the cookbook applications
-
- For an application where the application data can be treated (by this
- component ) as an unstructured stream of bytes, there will be a "real"
- abstract syntax and transfer syntax, but these will be understood and
- processed by the "application". For such application protocols there is
- no need to identify the abstract and transfer syntaxes being used -
- they are known by some other means (effectively inferred from the
- addressing). A generic (anonymous, if you like) name for both syntaxes
- can be used. However, in some cases object identifier names will be
- assigned for the syntaxes of the application protocol. In these cases,
- it will be appropriate to use them. It would even be legitimate to offer
- both the generic and specific names, with the responder accepting the
- specific (if it knew it) and the generic if the specific were not known
- - this will provide a migration option if names are assigned to the
- syntaxes after implementations are deployed using the generic names.
- CULR-3 defines object identifiers for "anonymous" abstract and transfer
- syntax names (currently called "default", but this is expected to
- change).
-
- For abstract syntaxes defined in ASN.1 object identifier names will have
- been assigned to the abstract syntax with the specification. This name
- MUST be used to identify the abstract syntax. The transfer syntax will
- most often be the Basic Encoding Rules (BER) object id, but alternatives
- (e.g. Packed Encoding Rules) are possible..
-
- For group III and group IV applications, specific object identifier
- names must be used for all the abstract and transfer syntaxes. If these
- names are not assigned with the specification (e.g. if the specification
- not in ASN.1) they can be assigned by whoever needs them --- ideally the
- "owner" of the syntax specification.
-
- 3.3. Processing Presentation-context-definition-list
-
- In Presentation context negotiation on connection establishment the
- initiator sends a list (the presentation context definition list) of the
- abstract syntaxes it intends to use, each with a list of transfer
- syntaxes. Each presentation context also has an integer identifier. To
- build the reply, a responder has to examine this list and work out which
- of the offered presentation contexts will be accepted and which (single)
- transfer syntax for each. The responder sends back the reply field, the
- Presentation-context-definition-result-list, in the accept message. The
-
-
- Expires 11 February 1994 [Page 8]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- result list contains the same number of result items as the definition-
- list proposed presentation-contexts. They are matched by position, not
- by the identifiers (which are not present in the result-list). An
- acceptance also includes the transfer syntax accepted (as there can be
- several offered). This can be copied from the definition list.
-
- For the group I, group II and group III cases, only the ACSE and one
- application-data P-context will be used and all other contexts rejected.
- For the group IV case, several presentation contexts will be accepted.
-
- However, even for group I applications there may be synonyms for an
- application-data Presentation-context. Unknown synonyms are rejected.
- The reply shown in 6.2 includes a rejection (It can therefore not be the
- reply to the connection request shown in 6.1, since that has only two
- items in the definition list.)
-
- In all cases, the connection responder must identify and keep the
- presentation context identifiiers (called pcid's here) for all the
- accepted presentation contexts. These are integers (odd integers, in
- this case). CULR-1 limits them to no greater than 32767, but they will
- probably usually be <= 255 (so taking up one octet).
-
- A presentation context is sometimes used (i.e. data is sent using it)
- before the negotiation is complete. As will be seen in section 6, in
- these cases, the transfer syntax name sometimes appears with the integer
- identifier.
-
- 3.4 Application context
-
- The Association Control Service Element also exchanges the name (another
- Object Identifier) of the application context, which identifies what the
- communication is all about, again independently of the naming and
- addressing. As for the syntaxes, although some name must be present in
- the protocol, a generic name can be used for applications that do not
- have a specific name assigned. (This will almost certainly be a group I
- application - if a specific name is assigned, it MUST be used.). The
- only negotiation allowed is that the reply may be different from that
- sent by the initiator. CULR-3 provides a generic application context
- name (i.e. assigns an object identifier).
-
- 3.5 APtitles and AEqualifiers
-
- In addition to the addressing constructs (transport address and possibly
- session and presentation selectors), the communicating application
- entities have names - Application-Entity titles (AEtitle). These are
- carried by ACSE as two fields -the Application-process titles (APtitle)
- and the Application-entity qualifier (AEqualifier). The AEtitle is
- compound, and the APtitle consists of all but the last element, which is
- the AEqualifier. (This explanation can be run backwards). There are two
- non-equivalent forms. AP-titles and AE-titles can be Directory Name or
-
-
- Expires 11 February 1994 [Page 9]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- an Object Identifier. AE-qualifiers can be Relative Distinguished Name
- (RDN) or an integer - the forms must match, since the AE-qualifier is
- the last component of the AP-title. In practice, the Directory form is
- likely to be the only one seen for a while.
-
- Use of the these names is rather variable. This cookbook proposes that
- implementations should be able to handle any value for the partner's
- names, and set (as initiator) its own names. This is primarily to
- facilitate OSI:non-OSI relaying (e.g. X/osi:X/tcp), allowing the names
- of the end-system to be carried to the relay, where they can be
- converted into hostnames, and the lower-layer address determined. OSI
- assumes that name-to-address lookup is possible (via the Directory or
- other means), but does not assume address-to-name will work. Thus the
- calling AE-title is needed if the responder is to know who the initiator
- is. However, most protocols work perfectly well without these names
- being included.
-
- As for their encoding, a RDN will almost always be a single attribute
- value assertion, with the attribute defined either by the Directory
- standard [ISO9594 = X.500], or in [Internet/Cosine Schema][RFC1274].
- Using the notation defined below, the encoding of an RDN using a
- Directory-defined standard attribute is:
-
- 31 80 {1 - RDN, [SET OF]
- 30 80 {2 - AttributeValueAssertion, [SEQUENCE]
- 06 03 5504yy -- OID identifying an attribute named in
- -- the Directory standard
- -- which one is determined by yy
- 13 La xxxxxx -- [Printable string]
- -- could be T61 string, with tag 14
- 00 00 }2 - end of AVA
- 00 00 }1 - end of RDN
-
- The most likely attributes for an RDN have the following hex values for
- yy
-
- CommonName 03
- Country 06
- Locality 07
- State/Province 08
- Organisation 0A
- OrganisationUnit 0B
-
- For non-Directory attributes, the object id name must be substituted
- (thus changing the immediately preceeding length)
-
- If there are multiple attribute value assertions in the RDN, the group
- between {2 and 2} is repeated (with different attributes). Order is not
- significant.
-
-
-
- Expires 11 February 1994 [Page 10]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- The encoding of a [Directory] Name for the AP-titles is the RDNs (high-
- order first) within
-
- 30 80 {1 - [SEQUENCE] Name
- -- put the RDN encodings here
- 00 00 }1
-
- An Object Identifier AP-title is encoded as a primitive (see below),
- with the "universal" tag for an object identifier, which is 6. The
- integer AE-qualifer uses the universal tag for an integer, which is 2.
-
-
- 4. What has to be sent and received
-
- 4.1. Sequence of OSI protocol data units used
-
- OSI defines its facilities in terms of services but these are abstract
- constructs (they do not have to correspond to procedure calls) - the
- significant thing is the transmission of the resulting protocol data
- unit (PDU). The PDU at each layer carries (as user data) the PDU of the
- layer above. The different layers follow different conventions for
- naming the pdus. This section gives an overview of the sequence of PDUs
- exchanged - the details of these are given in section 6.
-
- The requirements of the application are to create a connection(strictly
- an association for the application-layer in OSI, but called a connection
- here), to send and receive data and to close the connection. The PDUs
- used are thus:
-
- To create connection :
-
- First create transport-level connection
-
- Initiator sends the message defined in 6.1, which is Session
- CONNECT carrying Presentation CONNECT request [CP] carrying
- ACSE A-ASSOCIATE request [AARQ] optionally carrying application
- data.
-
- Responder replies with the message defined in 6.2, which is
- Session ACCEPT carrying Presentation CONNECT response [CPA]
- carrying ACSE response [AARE] optionally carrying application
- data.
-
- - If the responder rejects the attempt, the reply will be Session
- REJECT. This is defined in 6.3, where the REJECT carries no
- user data. A received REJECT may carry Presentation, ACSE and
- application data, although 6.3 shows only how to reject at
- Session level..
-
- To send/receive data on an connection
-
-
- Expires 11 February 1994 [Page 11]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- send the message defined in 6.4, which is an empty Session
- GIVE-TOKEN followed by Session S-DATA carrying Presentation P-
- DATA [TD] containing the application data (The GIVE-TOKEN is
- just two octets required by Session for some backwards
- compatibility)
-
- To close connection gracefully
-
- One side sends the message defined in 6.5, which is Session
- FINISH carrying P-RELEASE request carrying A-RELEASE request
- [RLRQ] optionally carrying application data (This side may now
- receive, but not send data)
-
- The other side replies with the message defined in 6.6, which
- is Session DISCONNECT carrying P-RELEASE response carrying A-
- RELEASE response [RLRE] optionally carrying application data
-
- First side disconnects transport connection on receiving the
- reply
-
- To close connection abruptly but also send application data
-
- Send the message defined in 6.7, which is Session ABORT
- carrying Presentation U-ABORT [ARU] carry ACSE U-ABORT [ABRT]
- carrying application data (delivery not guaranteed)
-
- On receiving Session ABORT, disconnect transport
-
- To close connection abruptly
-
- - Either sent the message defined in 6.8, which is Session ABORT
- carrying nothing;
-
- Or, just disconnect at transport level
-
- A group I application is assumed (by definition) not to send data on the
- establishment and release exchanges, a group II application will.
-
- It would be possible to use the abort-with-data facility with a group I
- to send a (possibly non-standardised) error message for diagnostic
- purposes.
-
- A special rule is used if a release collision occurs (i.e. FINISH+P-
- RELEASE+RLRQ received after sending the same): the side that initiated
- the original upper-layer connection waits and the other side replies
- with the DISCONNECT etc.
-
-
-
-
-
-
- Expires 11 February 1994 [Page 12]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- 4.2. Which OSI fields are used
-
- There are a number of fields (parameters) in the pdus involved. These
- can be categorised by how much support must be provided by a cookbook
- implementation - a field may be "useful", "send-only", "fixed", "fixed
- with default", "internal" or "not important". Even those that are not
- important may be received from another implementation, but since the
- application has no use for them, they can be ignored.
-
- The text below describes the processing that is required for each
- category and which fields are in each category.
-
- "Useful" - when sending, the implementation SHOULD be able to set any
- (legal) value of these fields (via the upper interface from the
- application or via some configuration or lookup mechanism) and SHOULD
- pass received values for the Calling values to the application (for
- specific applications, these fields may be either required or
- unnecessary.).
-
- AARQ:
-
- Called application-process title
- Called application-entity qualifier
- Calling application-process title
- Calling application-entity qualifier
-
- "Send-only" - the implementation must be able to set any value of these,
- but can ignore any received value. Both are octet strings.
-
- Presentation selector (up to 4 octets, limited by CULR-1)
- Session selector (up to 16 octets, limited by base standard)
-
-
- "Fixed" (constant for all applications)
-
- abstract and transfer syntax identifiers for presentation context
- for ACSE
- Version numbers - 2 for session, 1 for Presentation and ACSE
-
-
- "Fixed with default" - the value is specific to the application. For
- non-ASN.1 abstract syntaxes (group I or group II only) applications, the
- anonymous values assigned by the OIW minimal OSI profile [CULR-3] can be
- used. The CULR-3 default application context can be used where a proper
- context name is neither available nor needed.
-
- Application context
- CULR-3 default is {1 0 11188 3 3}
- Abstract syntax identifier for application data
- CULR-3 anonymous name is {1 0 11188 3 1 1}
-
-
- Expires 11 February 1994 [Page 13]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- Transfer syntax identifier for application data
- CULR-3 anonymous name is {1 0 11188 3 2 1}
-
-
- "Internal" - an arbitrary value can be sent; a received value must be
- stored for use in sending.
-
- Presentation context identifiers for ACSE and the application data
- (always odd integers)
-
- "Not important" - any legal received value for the other fields MUST be
- received (i.e. the pdu is parsed successfully), but can then be ignored.
- There is no requirement (in this cookbook) to check the existence, value
- or internal format of these fields.
-
- All other fields (which includes a large number of session fields)
-
- 4.3. Encoding methods and length fields
-
- Both Session and ASN.1/BER [ISO8824, ISO8825] use a type-length-value
- structure for their encodings, but different ones. Presentation protocol
- and ACSE protocol use the ASN.1/BER encoding and consequently a
- Presentation PDU containing an ACSE PDU can be constructed or parsed as
- if it were a single structure.
-
- All the protocols contain pdu fields with a compound structure. If one
- of these is being ignored it may be necessary (for BER, not session) to
- determine the lengths of its components to find the length of the
- ignored field.
-
- Many of the lengths in the specification below will vary, dependent on
- the values of the fields.
-
- 4.3.1 Session items
-
- The type field of a session item is always a single octet.
-
- For session items, given a particular length, there is no flexibility:
-
- If the length is less than 255, represent as one octet
-
- If the length is greater, represent as three octets, first is
- 0xFF, next two are the length, high-order octet first.
-
- (Some "real" implementations are known to use the second encoding in all
- cases. This is wrong, but should only concern conformance testers.)
-
-
-
-
-
-
- Expires 11 February 1994 [Page 14]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- 4.3.2 ASN.1/BER items (Presentation and ACSE)
-
- The type field for ASN.1-BER is the tag. Although it is possible for
- large tags (>30) to be multi-octet, there are no large tags in the
- protocols involved in this memo. Bit 6 (0x20) of the tag octet is 1 if
- the item is constructed (i.e. the value is itself one or more ASN.1 BER
- items) or 0 if it is primitive.
-
- There is considerable flexibility, at senders option, in how lengths are
- represented in BER. There are three forms: short, long and indefinite.
-
- Short (usable only if the length is less than 127) : one octet
-
- Long (usable for *any* length) : first octet has the top bit set,
- the rest is a count of how many octets are holding the length
- value; that many subsequent octets hold the length. A long length
- may use more than the minimum number of octets (so 0x8400000001 is
- a valid representation of length 1)
-
- Indefinite (usable only for the length of a compound field) : the
- single octet is 0x80, then one or more items (their tag-length-
- values) and finally two octets of 0x00 (equivalent to tag and
- length of zero).
-
- To be able to interwork generally, an implementation must be able to
- handle any of these forms when receiving.
-
- The encodings specified in the octet sequences below use indefinite
- length for all constructed items. This slightly increases the number of
- octets sent, but means that the length of a varying field (e.g. user
- data, or a varying object identifier) affects only the length of the
- item itself, and not the enclosing lengths. It is thus possible to use
- the octet sequences as templates interspersed by the varying fields.
-
- 4.4. BER Encoding of values for primitive datatypes
-
- The following ASN.1 primitive datatypes are used in the thinosi stack..
-
- Integers are encoded in twos-complement, high-order first. Unlike
- lengths, they must be encoded in the minimum number of octets (no
- leading 00 padding).
-
- Object Identifiers have a rather peculiar, but compressed encoding:
-
- Combine the first two integers of the OID into one element by
- multiplying the first (always 0, 1 or 2) by 40, and add the
- second.
-
- Each element (that one, and each subsequent integer in the OID
- taken on its own), is a taken as a binary number and divided into
-
-
- Expires 11 February 1994 [Page 15]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- 7-bit "bytes". This is apportioned into bits 1-7 of the minimum
- number of octets. Bit 8 is one for all octets of the sequence
- except the last. (This means that elements of less than 127 are
- single octet integers.)
-
- Printable Strings - as if in ISO 646 (ASCII)
-
- OCTET STRING - just put the octets there
-
- 4.5. Unnecessary constructed encodings
-
- BER allows the sender to break some items (such as OCTET STRINGS,
- character strings) into several pieces (i.e. as constructed encoding) or
- send them as primitive. CULR-1 requires that this is only done to one
- level. The pieces of both OCTET STRING and character string are tagged
- as if they were OCTET STRING - they have the tag 04. This memo does not
- include any of these optional constructions, but they may be received in
- interworking.
-
-
- 5. Notation
-
- The constructs are shown in their tag - length - value form. All numbers
- are in hexadecimal. Comments are preceded by a '-' character. Multiple
- '-' mean the comment is more than just information.
-
- The tag column contains one of:
-
- single fixed octets.
-
- * in the tag field indicates one or more pdu fields (possibly
- constructed) that may be received but are not sent. If received
- they can be ignored.
-
- ! indicates the tag is defined elsewhere.
-
- . is a place holder for the column.
-
- ? preceding the tag value indicates that the field is not always
- present - the comment will explain.
-
- The length column contains one of
-
- explicit value
-
- Ls - a length according to session rules which depends on the
- total size of the value (usually constructed)
-
- La - a length according to BER rules
-
-
-
- Expires 11 February 1994 [Page 16]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- . is a placeholder
-
- yy is exactly one octet (i.e. one hex digit per y) holding part of
- the length
-
- The value column contains one of
-
- the hex value
-
- xxxxxx - value of varying length (sometimes constructed)
-
- {n - (n = number) the start of a constructed value
-
- n - (n=number) the end of the constructed value with the
- corresponding number. (The number is sometimes omitted on the
- innermost nest of construction)
-
- yy - as part of a value - a variable value, each y represents one
- hex digit
-
- ? a value, possibly constructed that may be received but is not
- sent. It may be ignored if received
-
- Note that all presentation lengths may be received in one of the
- alternative forms. All constructed lengths are shown in indefinite form.
- If a received length is definite, the corresponding end item (which will
- be shown here as 00 00 }n) will become . . }n.
-
- In the comments, the notation {n} refers to the constructed item
- bracketed by the {n, }n fields.
-
-
- 6. Octet sequences
-
- 6.1. Connection request message
-
- - CONNECT SPDU
- 0D Ls {1 - "SI" value for CONNECT = 13
- * Ls ? - Connection Identifier
- 05 06 {2 - Connect/Accept Item
- 13 01 00 - protocol options (probably mandatory)
- * Ls ?
- 16 01 02 -- version number (bottom bit = v1, next bit =v2.
- -- may get offers of either or both
- * Ls ?
- . . }2 - End Connect/Accept Item
- 14 02 0002 - Session User Requirements (functional units)
- - Id (20), length (always 2), duplex fu only.
- -- On receipt, other bits may be set
- -- check that the 2 bit is set
-
-
- Expires 11 February 1994 [Page 17]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- * Ls ? - we do not send any Calling Session Selector
- ?34 Ls xxxx -- Called Session Selector (i.e. the other end's)
- -- up to 16 octets - you must set what the other side
- -- demands. - May be anything characters, binary etc.
- - {3} disappeared in editing
- C1 Ls {4 -- User Data, Identifier=193. if length is > 512,
- -- then identifier is 194 (hex C2) instead
- - CP - P-CONNECT-RI PPDU. Everything below is in ASN.1 BER
- 31 80 {5 - [SET]
- --- Mode-selector (the {6} group) could possibly
- --- come after everything else {7}
- --- This will probably only be done by
- --- evil-minded conformance testers
- A0 80 {6 - Mode-selector [0] IMPLICIT SET
- 80 01 01 - [0] IMPLICIT INTEGER {normalmode(1)}
- 00 00 }6
- A2 La {7 - [2] unnamed IMPLICIT SEQUENCE
- * La ?
- ?82 La xxxx - [2] Called-presentation-selector
- - CULR says maximum length is 4
- -- must be what the other side wants
- A4 80 {8 - [4] Presentation-context-definition-list
- --- items (the outer SEQUENCEs) within the {8} list may
- --- be in any order.
- 30 80 {9 - [SEQUENCE]
- 02 01 01 -- Defines pcid for ACSE; received value will be
- -- a one or two octet odd integer
- 06 04 52010001 - [OID] for ACSE abstract syntax
- 30 80 { - [SEQUENCE]
- 06 02 5101 - [OID] Transfer syntax name is BER
- 00 00 } - end t-s list
- 00 00 }9 - end acse pctx defn
- 30 80 {10 - [SEQUENCE]
- 02 01 03 -- [INTEGER] Defines pcid for application data;
- -- received value will be a one or two octet odd
- -- integer
- 06 La xxxxxx - [OID] object identifier name of application abstract
- - syntax (if CULR-3 default is used, this line is
- - 06 06 28CC64030101)
- 30 80 {11
- 06 La xxxxxx - [OID] t-s name for application data
- - (if CULR-3 default is used, this line is
- - 06 06 28CC64030201)
- -- will be several of these if multiple t-s offered
- -- (application is Group III)
- -- all will have the same tag 06
- 00 00 }11 - end transfer syntax list for application p-ctx
- 00 00 }10 - end application pctx definition
- -- if multiple presentation contexts are offered, (Group
- -- IV), the {10} SEQUENCE will repeat appropriately
-
-
- Expires 11 February 1994 [Page 18]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- -- if multiple contexts are to be accepted, all the pcid's
- -- must be remembered
- 00 00 }8 - end of p-ctx-def-list
- * La ?
- 61 80 {12 - [APPLICATION 1] User-data - Fully-encoded
- 30 80 {13 - [SEQUENCE] PDV-list
- 02 01 01 -- [INTEGER], value is acse pcid
- A0 80 {14 - [0] Single-ASN1
- - ACSE A-ASSOCIATE request APDU - AARQ
- 60 80 {15 - [APPLICATION 0] - AARQ
- * La ? - protocol version defaults to 1 (only one defined)
- A1 80 { - [1] Application-context
- 06 La xxxxxx -- object identifier name of application context
- - (if CULR-3 default is used, this line is
- - 06 05 28CC640303)
- 00 00 }
- -- Called application process title {16} and application
- -- entity qualifier may or may not be needed (see 3.4)
- ?A2 80 {16 - [2] Called Application-Process title
- ?! La xxxxxx -- see 3.5 - either a Directory Name or an oid
- ?00 00 }16 - end Called APtitle
- ?A3 80 {17 - [3] Called Application-Entity Qualifier
- ?! La xxxxxx -- see 3.5
- ?00 00 }17
- * La ?
- Calling AP-title and AE-qualifier may or may not be needed.
- ?A6 80 {18 - [6] Calling Application-Process title
- ?! La xxxxxx -- see 3.5
- ?00 00 }18
- ?A7 80 {19 - [7] Calling Application-Entity Qualifier
- ?! La xxxxxx -- see 3.5
- ?00 00 }19
- * La ?
- -- the user information field may or may not be required
- -- (not required for Group I)
- ?BE 80 {20 - [30] IMPLICIT SEQUENCE
- ?08 80 {21 - [EXTERNAL]
- ??06 La xxxxxx -- [OID] This is the oid identifying the transfer
- -- syntax used for the user data.
- -- It is (almost certainly) required even if only
- -- one transfer syntax was proposed.
- ?02 01 03 - [INTEGER] this is the pcid for the application data
- ?A0 La xxxxxx -- [0] single-ASN.1-type - the application data
- -- (see paragraph at end of this section below}
- ?00 00 }21 - end of EXTERNAL
- -- conceivably there may be several EXTERNALS, probably in
- -- different presentation contexts (different pcids)
- ?00 00 }20 - end of user information field
- 00 00 }15 - end of AARQ
- 00 00 }14 - end of single-ASN-type
-
-
- Expires 11 February 1994 [Page 19]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- 00 00 }13 - end of PDV-list
- 00 00 }12 - end of Presentation User-data
- 00 00 }7 - end of third element of CP-type SET
- 00 00 }5 - end of CP-type
- . . }4 - end of session user data
- . . }1 - end of CONNECT SPDU
-
- The application data carried in the EXTERNAL is shown (as A0 La xxxx)
- assuming it is a single-ASN.1 type, which it often will be for group II
- (since these tend to be OSI applications). The xxxx will be the BER
- encoding of the application pdu (probably something like Z-BIND or Y-
- INITIALIZE). The length may be indefinite.
-
- If the application data is not a single ASN.1 type, but is an octet-
- aligned value, the A0 La xxxx is replaced by 81 La xxxx, where xxxx is
- the value. In this case the length must be definite (unless an
- "unecessary" constructed encoding is used.)
-
- Identical considerations apply to the other EXTERNALs carried in the
- ACSE pdus.
-
- 6.2. Successful reply to connection setup
-
- If the connection attempt is succesful, the following is sent to the
- initiator on a T-DATA.
-
- This accept contains an item {9} in the presentation-context-result-list
- which is the rejection of some presentation context that was offered.
- This is included to show such a rejection. It is NOT included if this is
- the reply to the connect in 6.1.
-
-
- 0E Ls {1 - ACCEPT SPDU
- * Ls ?
- 05 06 {2 - Connect/Accept Item
- 13 01 01 - Protocol Options
- * Ls ?
- 16 01 02 - version number (this shows version 2 only)
- -- if version 2 was not offered, omit all of {2}
- * Ls ?
- . . }2 - End Connect/Accept Item
- 14 02 0002 - Session User Requirements (functional units)
- - duplex fu only (kernel is automatic)
- * Ls ?
- C1 Ls {3 -- User Data.( tag is C2 if length > 512 )
- - CPA - P-CONNECT response
- 31 80 {4 - [SET]
- -- again, Mode-selector could come at the end
- A0 80 { - Mode-selector [0], length=3
- 80 01 01 - normal mode - [0], length=1, value=1
-
-
- Expires 11 February 1994 [Page 20]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- A2 80 {5 - [2] SEQUENCE (unnamed)
- * La ?
- A5 80 {6 - [5] P-context-definition-result-list
- -- following result items are in the order corresponding
- -- to the pctx-definition-list in the connect
- -- this example assumes that was ACSE, user, rubbish
- -- with rubbish rejected
- 30 80 {7 - [SEQUENCE] result item for acse
- 80 01 00 -- [0] result, value 0 is acceptance
- 81 02 5101 - [1] accepted transfer syntax name = BER
- - note that this has an implicit tag, not 06
- 00 00 }7 - end result item for acse p-ctx
-
- 30 80 {8 - [SEQUENCE] result item for application-data pctx
- 80 01 00 - [0] value 0 is acceptance
- 81 La xxxxxx - [1] oid for transfer syntax, as on defintion list
- -- if there were several (groupIII) , the one you
- -- liked most
- 00 00 }8 - end result item for app-data p-ctx
- -- next SEQUENCE is a rejection of a third pctx
- 30 80 {9 - [SEQUENCE] result item for a rejected pctx
- 80 01 02 -- [0] result, value 2 is provider rejection
- 82 01 00 - [2] reason, value 0 is reason-not-specified
- -- there are other reasons, but let's keep it simple
- 00 00 }9 - end result item for rejected pctx
- 00 00 }6 - end p-ctx-def-result-list
- * La ?
- 61 80 {10 - [APPLICATION 1] User-data, Fully-encoded
-
- 30 80 {11 - [SEQUENCE] PDV-list
- 02 01 01 -- [INTEGER] value is pcid for ACSE, as stored from
- -- the pctx-definition-list on the P-CONNECT request
- A0 80 {12 - [0] single-ASN1-type
- - A-ASSOCIATE response APDU - AARE
- 61 80 {13 - [APPLICATION 1] identifies AARE
- * La ?
- A1 80 {14 - [1] Application-context
- 06 La xxxxxx - [OID] name of application context
- - usually the same as on AARQ, can differ
- 00 00 }14
- A2 03 {15 - [2] result
- 02 01 00 - [INTEGER] value 0 means accepted
- 00 00 }15
- A3 80 {16 - [3] result-source-diagnostic
- - (curiously, a non-optional field)
- A1 80 {17 - [1] acse-service-user
- 02 01 00 - [INTEGER] value 0 = null ! (why no implicit tag)
- 00 00 }17 - end acse-service-user
- 00 00 }16 - end result source diagnostic
- * La ?
-
-
- Expires 11 February 1994 [Page 21]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- -- the user information field may or may not be required
- - (not used for Group I)
- ?BE 80 {20 - [30] IMPLICIT SEQUENCE
- ?08 80 {21 - [EXTERNAL]
- -- the transfer-syntax oid is not present this time
- ?02 01 03 - [INTEGER] this is the pcid for the application data
- ?A0 La xxxx -- [0] single-ASN1-type (see note at end of 6.1)
- ?00 00 }21 - end of EXTERNAL
- -- conceivably there may be several EXTERNALS, probably in
- -- different presentation contexts (different pcids)
- ?00 00 }20 - end of user information field
- 00 00 }13 - end AARE
- 00 00 }12 - end single-asn1-type
- 00 00 }11 - end PDV-list
- 00 00 }10 - end Presn user-data
- 00 00 }5 - end [2] implicit sequence in cpa
- 00 00 }4 - end CPA-type set
- . . }3 - end session userdata
- . . }1 - end ACCEPT SPDU
-
-
- 6.3. Connection rejection
-
- Refusal is at session-level, but by session user, with no reason given.
- This is a compromise avoiding making unfounded accusations of (session)
- protocol misbehaviour. If the implementation finds it does not like the
- received message, it is not essential to attempt to communicate with the
- partner why, though this may be helpful if the reason is correctly
- identified. (In most cases, a wise implementor will make sure an error
- message goes somewhere or other).
-
-
- 0C 03 {1 - REFUSE SPDU
- * Ls ?
- 32 01 00 - rejected by SS-user, no reason
- . . }1
-
-
- The far-end may send interesting things explaining why you are not
- getting interworking. If this is a session reason, the reason code will
- one octet between 81 and 86. If the rejection is higher than session,
- this will be carried on S-REFUSE (so first octet is still 0C) and the
- higher pdu will appear as part of the reason code, which will start with
- 02. (The only remaining code is 01 = user congestion).
-
- 6.4. Data-phase TSDU
-
- This is the core of the skinny stack. The lengths shown use a particular
- set of choices for indefinite and definite lengths that means that the
- application data length only affects one field. Making the two earlier
-
-
- Expires 11 February 1994 [Page 22]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- indefinite lengths definite would require more calculation - adding 4
- octets after the application data is assumed to be quicker. This header
- is also designed to be 20 octets long, thus maintaining 4-byte alignment
- between transport and application buffers. Implementations are
- recommended to use this encoding. It is possible to rapidly match
- incoming data against it - if there is no mismatch until the length
- field, the location of the beginning of the data can be determined
- without further analysis.
-
-
-
- SPDUs
- 01 00 . - S-GIVE-TOKEN - required by basic concatenation
- - but no parameters
- 01 00 . - S-DATA - no parameters - what follows is User
- - Information, not User Data, so is not included in the
- - SPDU length fields
- - P-DATA PPDU - TD (why TD ? Typed-data id TTD !)
- 61 80 {1 - User-data [APPLICATION 1]
- 30 80 {2 - [SEQUENCE] PDV-list
- 02 01 03 - [INTEGER] pcid for application data, P-CONNECT PPDU
- - remembered by both sides
- 81 83yyyyyy xxxxxx -- [1] octet-aligned presentation data value(s)
- -- length of length (3 octets) then three octets yyyyyy
- -- for the length of the user data xxxxxx
- 00 00 }2 - End-of-contents for end of PDV-list
- 00 00 }1 - End-of-contents for end of Presentation User-data
-
-
- If the application data is in ASN.1, and a single ASN.1 value is being
- sent on the TSDU, the same header can be used except for the tag on the
- presentation data values, which becomes A0 (= [0], constructed).
-
- If there are multiple data values to be sent, this header can be
- expanded in several ways:
-
- a) if there are several ASN.1 values from the same presentation
- context, they can be concatenated and treated as an octet-aligned
- value (using the header as shown above, with tag 81 (or A1 - I
- think its primitive) or each ASN.1 value can be an item (tagged
- A0), one after the other
-
- b) if the data values are from different presentation contexts
- (group IV), each is in its own {2} group within the {1}.
-
- On receipt, for the simple octet-aligned case, the data value may itself
- have a constructed encoding - this will make the tag A1, and it will
- contain elements each tagged 04 (OCTET STRING). According to CULR-1,
- these elements are primitive (otherwise they would be 24 of course).
-
-
-
- Expires 11 February 1994 [Page 23]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- 6.5. Closedown - release request
-
- When all is done, and you want to close down gracefully, send this on T-
- DATA.
-
- - FINISH SPDU
- 09 10 {1 - 9 identifies FINISH
- * Ls ? - No Transport Disconnect item
- - default is release Transport-connection
- C1 0E {2 - User data (code 193)
- - P-RELEASE req/ind PPDU (has no name)
- 61 80 {3 - [APPLICATION 1], user data, fully-encoded
- 30 80 {4 - [SEQUENCE] PDV-list
- 02 01 01 -- pcid for ACSE, remembered from setup
- A0 80 {5 - [0] single asn.1-type
- - A-RELEASE request APDU - RLRQ
- 62 80 {6 - [APPLICATION 2] identifies RLRQ
- 80 01 00 - [0] reason, value 0 means normal
- * La ?
- -- the user information field may or may not be required
- - ( not required for Group I)
- ?BE 80 {7 - [30] IMPLICIT SEQUENCE
- ?08 80 {8 - [EXTERNAL]
- -- the transfer-syntax oid is not present this time
- ?02 01 03 - [INTEGER] this is the pcid for the application data
- ?A0 La xxxxx -- [0] single-ASN.1-type application data
- -- (see note at end of 6.1)
- ?00 00 }8 - end of EXTERNAL
- -- conceivably there may be several EXTERNALS, probably in
- -- different presentation contexts (different pcids)
- ?00 00 }7 - end of user information field
- 00 00 }6 - end of RLRQ
- 00 00 }5 - end of single asn.1-type
- 00 00 }4 - end of PDV-list
- 00 00 }3 - end of Presentation User-data
- . . }2 - end of session user data
- . . }1 - end of FINISH SPDU
-
-
-
- 6.6. Closedown - release response
-
- On receiving a FINISH, you send this to tell the other end it is all
- over
-
- - Session DISCONNECT SPDU
- 0A 10 {1 - SI=10, DISCONNECT
- C1 0E {2 - User data (tag = C2 if length >512)
- - P-RELEASE rsp PPDU
- 61 80 {3 - [APPLICATION 1], user data, fully-encoded
-
-
- Expires 11 February 1994 [Page 24]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- 30 80 {4 - [SEQUENCE] PDV-list
- 02 01 01 -- [INTEGER] pcid for ACSE, remembered from setup
- A0 80 {5 - [0] single asn.1-type
- - A-RELEASE response APDU - RLRE
- 63 80 {6 - [APPLICATION 3] identifies RLRE
- 80 01 00 - [0] reason, value 0 means normal
- * La ?
- -- the user information field may or may not be required
- - (not required for Group I)
- ?BE 80 {7 - [30] IMPLICIT SEQUENCE
- ?08 80 {8 - [EXTERNAL]
- -- the transfer-syntax oid is not present this time
- ?02 01 03 - [INTEGER] this is the pcid for the application data
- ?A0 La xxxxx -- [0] single-ASN.1-type application data
- -- (see note at end of 6.1)
- ?00 00 }8 - end of EXTERNAL
- -- conceivably there may be several EXTERNALS, probably in
- -- different presentation contexts (different pcids)
- ?00 00 }7 - end of user information field
- 00 00 }6 - end of RLRE
- 00 00 }5 - end of single asn.1-type
- 00 00 }4 - end of PDV-list
- 00 00 }3 - end of Presentation userdata
- . . }2 - end of session userdata
- . . }1 - end of DISCONNECT SPDU
-
- 6.7. Deliberate abort
-
- It is not clear whether this is any use - just clearing the Transport
- connection will be more effective. It goes on T-DATA, but asks for the
- far-side to close the T-connection.
-
- - Session ABORT SPDU
- 19 15 {1 - SI of 25 is ABORT
- 11 01 03 - Transport Disconnect PV, code 17
- -- value = '...00011'b means please
- -- release T-conn, user abort
- * Ls ?
- C1 11 {2 - Session User Data
- - P-U-ABORT PPDU - ARU
- A0 80 {3 - [0] implicit sequence for normal mode
- A0 80 {4 - [0] presentation-context-identifier-list
- 30 80 {5 - [SEQUENCE]
- 02 01 01 - [INTEGER]pcid for ACSE
- 06 02 5101 - [OID] for acse transfer syntax = BER
- 00 00 }5
- -- there will be one {6} group for each application
- -- presentation context that is used in this message
- -- if there is no user data, the {6} group can be
- -- omitted
-
-
- Expires 11 February 1994 [Page 25]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- 30 80 {6
- 02 01 03 - [INTEGER] pcid for application data
- 06 La xxxxxx - [OID] transfer syntax for application data
- 00 00 }6
- 00 00 }4 - end of presentation-context-identifier-list
- 61 80 {7 - [APPLICATION 1], user data, fully-encoded
- 30 80 {8 - [SEQUENCE] PDV-list
- 02 01 01 - [INTEGER] pcid for ACSE as on CP PPDU
- A0 05 {9 - [0] single asn.1-type
- - A-ABORT APDU - ABRT
- 64 80 {10 - [APPLICATION 4] identifies ABRT
- 80 01 01 - [0] value 1 is acse-service-provider
- -- the user information field may or may not be required
- ?BE 80 {11 - [30] IMPLICIT SEQUENCE
- ?08 80 {12 - [EXTERNAL]
- -- the transfer-syntax oid is not present this time
- -- (according to CULR-1)
- ?02 01 03 - [INTEGER] this is the pcid for the application data
- ?A0 La xxxxx -- [0] single-ASN.1-type application data
- -- (see note at end of 6.1)
- ?00 00 }12 - end of EXTERNAL
- -- conceivably there may be several EXTERNALS, probably in
- -- different presentation contexts (different pcids)
- ?00 00 }11 - end of user information field
- 00 00 }10 - end of ABRT
- 00 00 }9 - end of single asn.1-type
- 00 00 }8 - end of PDV-list
- 00 00 }7 - end of Presentation user-data
- 00 00 }3 - end of ARU-PPDU
- . . }2 - end of session user-data
- . . }1 - end of ABORT SPDU
-
-
- 6.8. Provider abort
-
- Generated when an internal error occurs (i.e. something has gone mildly
- (?) wrong in the cookbook implementation). Rather than accuse anyone of
- protocol errors, we just abort at session.
-
- ABORT SPDU
- 19 03 {1 - SI=25 = ABORT SPDU
- 11 01 09 - Transport Disconnect PV, code 17
- -- value = '...01001'b release T-conn
- -- no reason
- * Ls ?
- . . }1
-
-
-
-
-
-
- Expires 11 February 1994 [Page 26]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- 6.9. Abort accept
-
- If a Session abort (of any kind) is sent, it is possible that the far-
- end will send back an abort accept. If this happens, disconnect the
- transport. (The abort messages above do not propose that the transport
- connection be reused, and in this case, an abort accept is just the far-
- end passing the transport-disconnect initiative back.) This session
- message need never be sent - just disconnect transport on receiving an
- abort.
-
- ABORT ACCEPT SPDU
- 1A 00 . - SI=26 = ABORT ACCEPT SPDU, no parameters
-
-
- 7. References
-
- [CULR-1] Working draft 13 of Common upper layer requirements - Part 1 :
- basic connection-oriented requirements; EWOS. (A later draft will be
- proposed as ISP 11188/1)
-
- [CULR-3] Draft of Common Upper-layer requirements - Part 3: Minimal OSI
- upper layers facilities (A later draft will be proposed as ISP 11188/3)
-
- [ISO8072] Information processing systems - Open Systems Interconnection
- - Transport service definition; ISO, 1986.
-
- [ISO8073] Information processing systems - Open Systems Interconnection
- - Transport protocol specification; ISO, 1986.
-
- [ISO8326] Information processing systems - Open Systems Interconnection
- - Basic connection oriented session service definition; ISO, 1987. (or
- review copy of revised text = ISO/IEC JTC1/SC21 N4657, April 1990)
-
- [ISO8327] Information processing systems - Open Systems Interconnection
- - Basic connection oriented session protocol specification; ISO, 1987.
- (or review copy of revised text = ISO/IEC JTC1/SC21 N4656, April 1990)
-
- [ISO8649] Information processing systems - Open Systems Interconnection
- - Service definition for the Association Control Service Element; ISO,
- 1989
-
- [ISO8650] Information processing systems - Open Systems Interconnection
- - Protocol specification for the Association Control Service Element;
- ISO, 1989
-
- [ISO8822] Information processing systems - Open Systems Interconnection
- - Connection-oriented presentation service definition; ISO, 1989
-
- [ISO8823] Information processing systems - Open Systems Interconnection
- - Connection-oriented presentation protocol specification; ISO, 1989
-
-
- Expires 11 February 1994 [Page 27]
-
- INTERNET DRAFT ThinOSI upper-layers cookbook August, 1993
-
-
- [ISO8824] Information technology - Open Systems Interconnection -
- Specification of Abstract Syntax Notation One (ASN.1), ISO/IEC 1990
-
- [ISO8825] Information technology - Open Systems Interconnection -
- Specification of Basic Encoding Rules for Abstract Syntax Notation One,
- ISO/IEC 1990
-
- [RFC1006] ISO transport services on top of the TCP; Rose M.T, Cass D.E,
- 1987
-
- [ISO9594] Information technology - Open Systems Interconnection - The
- Directory; ISO/IEC, 1990
-
- [RFC 1274] The Internet and Cosine Schema; Kille, S.H., 1992
-
-
-
-
- 8. Other notes
-
- The Session, Presentation and ACSE standards have been the subject of
- considerable amendment since their first publication. The only one that
- is significant to this cookbook is Session addendum 2, which specifies
- session version 2 and unlimited user data. There are plans to produce
- new editions of these standards, incorporating all the amendments,
- published in early 1994.
-
- The coding choices made in the cookbook are (nearly) those made by the
- "Canonical Encoding Rules", which are a form of Basic Encoding Rules
- with no optionality, specified in an amendment to ISO/IEC 8825
- (currently a new part of 8825 at Draft International Standard status,
- but likely to be folded into a new edition of 8825). A defect report has
- been proposed against Presentation and ACSE, suggesting that a note to
- the protocol specifications recommend use of the canonical encoding
- options when sending, and then optimising for this on receipt.
-
-
- 9. Author's Address
-
- Peter Furniss
- Peter Furniss Consultants
- 58 Alexandra Crescent
- Bromley, Kent BR1 4EX
- UK
-
- Phone & fax +44 81 313 1833
-
- Email: P.Furniss@ulcc.ac.uk
-
-
-
-
- Expires 11 February 1994 [Page 28]
-
-